package org.hecf.demo.taskTest;

import org.junit.Test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

/**
 * timer有2中方法schedule和scheduleAtFixedRate，
 *      schedule会等任务结束在开始计算时间间隔，
 *      scheduleAtFixedRate是在任务开始就计算时间，有并发的情况
 */
public class TaskTestTimer {

    @Test
    public void test1() throws InterruptedException {
        /* 1000ms是延迟启动时间，2000ms是定时任务周期，每2s执行一次 */
        Timer testTimer = new Timer("testTimer");

        testTimer.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("TimerTask");
            }
        }, 1000,2000);
        Thread.sleep(2000000L);
    }

    @Test
    public void test2() throws ParseException, InterruptedException {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        try {
            /* date是开始时间，2000ms是定时任务周期，每2s执行一次 */
            Date date = dateFormat.parse("2020-01-13 16:18:00.000");
            Timer testTimer1 = new Timer("testTimer1");
            testTimer1.scheduleAtFixedRate(new TimerTask() {
                @Override
                public void run() {
                    System.out.println("TimerTask");
                }
            }, date,5000);
            Thread.sleep(20000L);
        } catch (ParseException e) {
            e.printStackTrace();
        }

    }
}
